In systems with, for example, a plurality of computers which must communicate with each other there is a need for all of the computers to be synchronized. A plurality of computers might be found in a system having redundant channels, for example. From a common mode failure standpoint it is not desirable to implement the synchronizing function in a single computer. It is difficult to achieve the twin objectives of common mode failure avoidance (via redundancy) and assured synchronization.
In order to provide synchronization, a "voting" function may be performed among the various parts of the system. For example, U.S. Pat. No. 4,330,826, discloses a SYNCHRONIZER AND SYNCHRONIZATION SYSTEM FOR A MULTIPLE COMPUTER SYSTEM, filed Feb. 5, 1980, issued May 18, 1982, granted to Whiteside et al, and assigned to the Bendix Corporation. In the Whiteside synchronization system a plurality of identical synchronizing algorithms are provided to each computer in a multiple computer system. Each synchronizer receives sampling number messages from like synchronizers in the other computers and compares the received messages in order to find a sampling number which agree with a sampling number stored internally and "votes" on a predetermined number of correct sampling number messages received from the other synchronizers to generate a voting sampling number having the same or closest value to the number found in storage.
The main disadvantage of the Whiteside algorithmic procedure for synchronization is that it must be excuted by a correctly operating processor in software. The procedure is iterative, requires processor time overhead, and cannot achieve the kind of very tight frame synchronization which is most desirable. The software approach has the potential for generating common mode faults to the redundant system due to the presence of a faulty processor or cross channel data link.
It is generally very difficult to design software to correctly detect and isolate failures and this is particularly true in the absence of a reliable time reference.